from qturboframe.lib.report.log import logger
from BladeFerm.hui_app.hui_lib.mail_textarea import MailTextarea as BladeMailTextarea
from selenium.webdriver.common.action_chains import ActionChains

class MailTextarea(BladeMailTextarea):
    '''操作员中心特有邮件样式文本框对象控件操作'''
    
    def __init__(self, element_para, father=None, timeout=5):
        super().__init__(element_para, father, timeout)
        self.mail_textarea_type = self._element.find_element_by_attribute('xpath', './div[@class="w-e-text-container"]/div[@class="w-e-text"]', timeout=self.timeout)
    
    def set_value(self, value):
        '''
        填值操作

        :Args:
         - value: 需要填入文本框的值

        :Example:
         - 例: Opt_Mail_Textarea.set_value(value)
        '''
        
        # self.mail_textarea_type.focus()
        # 移动到最前方然后再进行输入
        ActionChains(self._driver).move_to_element_with_offset(self.mail_textarea_type, 0, 0).click().perform()
        self.mail_textarea_type.send_keys(value)
        
    def is_default(self, value):
        """
        检查邮件文本框件默认值

        :Args:
         - value: 待检查的值

        :Returns:
            检查匹配返回True，否则返回False

        :Example:
         - 例: Opt_Mail_Textarea.is_default('admin')
        """
        self.mail_textarea_type.focus()
        if self.mail_textarea_type.text:
            text = self.mail_textarea_type.text
        elif self.mail_textarea_type.get_attribute('value'):
            text = self.mail_textarea_type.get_attribute('value')
        else:
            text = ''
        if text == value:
            return True
        else:
            logger.error('操作员中心邮件文本框默认值不匹配！')
            return False